<div class="refentry"><a id="glDeleteProgram"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glDeleteProgram — delete a program object</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">glDeleteProgram</strong>(</code></td><td>GLuint <var class="pdparam">program</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>program</code></em></span></dt><dd><p>Specifies the program object to be
		    deleted.</p></dd></dl></div></div><div class="refsect1"><a id="description"></a><h2>Description</h2><p><code class="function">glDeleteProgram</code> frees the memory and
	invalidates the name associated with the program object
	specified by <em class="parameter"><code>program.</code></em> This command
	effectively undoes the effects of a call to
	<a class="citerefentry" href="glCreateProgram"><span class="citerefentry"><span class="refentrytitle">glCreateProgram</span></span></a>.</p><p>If a program object is in use as part of current rendering
	state, it will be flagged for deletion, but it will not be
	deleted until it is no longer part of current state for any
	rendering context. If a program object to be deleted has shader
	objects attached to it, those shader objects will be
	automatically detached but not deleted unless they have already
	been flagged for deletion by a previous call to
	<a class="citerefentry" href="glDeleteShader"><span class="citerefentry"><span class="refentrytitle">glDeleteShader</span></span></a>.
	A value of 0 for <em class="parameter"><code>program</code></em> will be silently
	ignored.</p><p>To determine whether a program object has been flagged for
	deletion, call
	<a class="citerefentry" href="glGetProgramiv"><span class="citerefentry"><span class="refentrytitle">glGetProgramiv</span></span></a>
	with arguments <em class="parameter"><code>program</code></em> and
	<code class="constant">GL_DELETE_STATUS</code>.</p></div><div class="refsect1"><a id="errors"></a><h2>Errors</h2><p><code class="constant">GL_INVALID_VALUE</code> is generated if
	<em class="parameter"><code>program</code></em> is not a value generated by
	OpenGL.</p></div><div class="refsect1"><a id="associatedgets"></a><h2>Associated Gets</h2><p><a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>
	with argument <code class="constant">GL_CURRENT_PROGRAM</code></p><p><a class="citerefentry" href="glGetProgramiv"><span class="citerefentry"><span class="refentrytitle">glGetProgramiv</span></span></a>
	with arguments <em class="parameter"><code>program</code></em> and
	<code class="constant">GL_DELETE_STATUS</code></p><p><a class="citerefentry" href="glIsProgram"><span class="citerefentry"><span class="refentrytitle">glIsProgram</span></span></a></p></div>
        {$pipelinestall}{$examples}
        <div class="refsect1"><a id="seealso"></a><h2>See Also</h2><p><a class="citerefentry" href="glCreateShader"><span class="citerefentry"><span class="refentrytitle">glCreateShader</span></span></a>,
	<a class="citerefentry" href="glDetachShader"><span class="citerefentry"><span class="refentrytitle">glDetachShader</span></span></a>,
	<a class="citerefentry" href="glUseProgram"><span class="citerefentry"><span class="refentrytitle">glUseProgram</span></span></a>
	</p></div><div class="refsect1"><div id="Copyright"><h2>Copyright</h2><p>
            Copyright © 2003-2005 3Dlabs Inc. Ltd.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="ulink" href="http://opencontent.org/openpub/" target="_top">http://opencontent.org/openpub/</a>.
        </p></div></div></div>
